package leetcode;

import java.util.Arrays;
import java.util.LinkedHashSet;
import java.util.Set;

import org.junit.Test;

/**
 * @author LiDong
 * @version 1.0.0
 * @createTime 2021/12/20 8:17
 */
public class Test414 {


    /**
     * 给你一个非空数组，返回此数组中 第三大的数 。如果不存在，则返回数组中最大的数。
     */
    @Test
    public void test() {
        int[] arr = {1, 1, 2, 3, 4};
        System.out.println(thirdMax(arr));
    }

    public int thirdMax(int[] nums) {
        Arrays.sort(nums);
        Set<Integer> set = new LinkedHashSet<>();
        for (int num : nums) {
            set.add(num);
        }
        Integer[] objects = set.toArray(new Integer[set.size()]);
        if (objects.length == 2) return objects[1];
        if (objects.length < 3) return objects[0];
        return objects[objects.length - 3];
    }
}
